/**
 * Copyright (c) 2023 murenchao
 * taomu is licensed under Mulan PubL v2.
 * You can use this software according to the terms and conditions of the Mulan PubL v2.
 * You may obtain a copy of Mulan PubL v2 at:
 *       http://license.coscl.org.cn/MulanPubL-2.0
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PubL v2 for more details.
 */
package cool.taomu.toolkit.jsch.service

import java.util.Hashtable
import java.util.Map
import javax.inject.Inject

class JschUtils {

	IJschConnection ds;

	new() {
	}

	new(IJschConnection ds) {
		this.ds = ds
	}

	new(String host, String uname, String upass, int port) {
		this(host, uname, upass, port, null);
	}

	/**
	 * 跳过 Kerberos
	 * session.setConfig(
	 *     "PreferredAuthentications",
	 *     "publickey,keyboard-interactive,password");
	 */
	new(String host, String uname, String upass, int port, Hashtable<String, String> sshconfig) {
		var ds = new JschConnection();
		ds.host = host;
		ds.username = uname;
		ds.password = upass;
		ds.port = port;
		ds.sshconfig = sshconfig;
		this.ds = ds;

	}

	def Ssh() {
		return new Ssh(this.ds);
	}

	def Sftp() {
		return new Sftp(this.ds);
	}

	def Shell() {
		return new Shell(this.ds);
	}

	def portForwarding() {
		return new PortForwarding(this.ds);
	}
}
